package com.tmxk.api.days02.lf;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * String类
 */
public class StringDemo {
        static Map<String,User> userMap = new HashMap<>();
        static {
            // 初始加载两条用户信息
            User user1 = new User("1001","Tom","123456");
            User user2 = new User("1002","Emma","000000");
            userMap.put(user1.getUserId(),user1);
            userMap.put(user2.getUserId(),user2);
        }
        public static void main(String[] args) {
        //char 和 String 区别: String 就是由多个字符(char)组成
        /**
         * 2.1 boolean equals(Object anObject)  比较值字符串内容
         * 2.2 int length()  获取字符串长度
         * 2.3 boolean isEmpty()  字符串是否为空(字符串长度是否为0)
         * 2.4 char charAt(int index) 根据字符串指定下标位置返回对应单个字符
         * 2.5 byte[] getBytes    将字符串转换成字节数组(将字符串内容跟File文件交互时应用)
         * 2.6 boolean equalsIgnoreCase(String anotherString)  忽略大小写比较字符串内容
         * 2.7 int compareTo(String anotherString)  字符串比较值大小(按字典顺序比较两个字符串);
         *                  如: a.compareTo(b);  a字符串大于b字符串,返回负数;  a字符串等于b字符串,返回0; a字符串小于b字符串,返回正数
         *
         * 2.8 int compareToIgnoreCase(String str) 忽略大小写字符串比较值大小(按字典顺序比较两个字符串;[比较的结果同2.7])
         * 2.9 int indexOf(Object ch)返回指定字符第一次出现的字符串内的索引
         * 2.10 int lastIndexOf(Object ch)返回指定字符的最后依次出现的字符串中的索引
         * 2.11 String substring(int beginIndex) 根据指定下标位置截取字符串,该方法代表从指定开始位置截取到最后
         * 2.12 String substring(int beginIndex,int endIndex) 根据指定开始下标位置和结束下标位置截取字符串
         *  注: 2.11 和2.12 截取字符串下标的位置 遵循 取前不取后
         *  2.13 String concat(String str) 字符串追加,就相当于 加号(+) 拼接字符串
         *  2.14 String replace(char oldChar,char newChar) 字符串根据指定字符进行替换
         *  2.15 boolean matches(String regex) 字符串正则匹配
         *  2.16 String[] split(String regex)  分割字符串
         *  2.17 String toLowerCase()  将字符串转换成小写
         *  2.18 String toUpperCase()  将字符串转换成大写
         *  2.19 String trim()  去空格
         *  2.20 String format(String format,Object...args) 字符串格式化指定内容
         *  2.21 String valueOf(Object obj)
         *  2.22 String intern()      一个字符串与该字符串具有相同的内容，保证来自一个唯一的字符串池
         */


        /**
         * 需求: 用户名 / 注册
         * 用户名
         * 密码
         */
        Scanner sc = new Scanner(System.in);
        System.out.println("欢迎来到**平台");
        System.out.println("请输入用户姓名");
        String userName = sc.next();
        System.out.println("请输入密码");
        String password = sc.next();
        // 判断当前用户输入的 用户名和密码是否存在平台系统中
        Collection<User> users = userMap.values();
        boolean isBool = false;
        for (User u : users) {
            if (userName.equalsIgnoreCase(u.getUserName()) && password.equals(u.getPassword())) {
                isBool = true;
                break;
            }
        }
        if(isBool){
            System.out.println("登录成功,欢迎"+ userName +"登录");
            String mes = "登录成功,欢迎".concat(userName).concat("登录");
            System.out.println("mes:" + mes);
        }else {
            System.out.println("登录失败,密码或用户名有误");
        }
    }
}
